/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DATABASE;

/**
 *
 * @author Usuario
 */
import Negocio.Mail;
import Negocio.MailEnviado;
import Negocio.MailRecibido;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;


public class MailDB 
{
    
    public boolean mailsEnviados (MailEnviado mail) throws SQLException
	{		
                DatabaseManager db = new DatabaseManager();	
                Connection var= db.getConnection();
		Statement stmt = var.createStatement();
		boolean resultado=stmt.execute("INSERT INTO EMAIL VALUES(INCREMENTO_MAIL.NEXTVAL,'"+mail.getAsunto()+"','"+mail.getCuerpo()+"', '"+mail.getFecha()+"')" );
                stmt.execute("INSERT INTO ENVIADO VALUES(INCREMENTO_MAIL.CURRVAL,'"+mail.getDestinatario()+"')" );
                var.commit();
                db.getConnection().close();
		return resultado;
	}
    
    
    public boolean mailsGuardados(MailEnviado mail) throws SQLException 
    {

            DatabaseManager db = new DatabaseManager();	
            Connection var= db.getConnection();
            Statement stmt = var.createStatement();
            boolean resultado=stmt.execute("INSERT INTO EMAIL VALUES(INCREMENTO_MAIL.NEXTVAL,'"+mail.getAsunto()+"','"+mail.getCuerpo()+"', '"+mail.getFecha()+"')" );
            stmt.execute("INSERT INTO BORRADOR VALUES(INCREMENTO_MAIL.CURRVAL,'"+mail.getDestinatario()+"')" );
            var.commit();
            db.getConnection().close();
            return resultado;
        
    }
    
    public ArrayList listarRecibidos(String sql) throws SQLException 
    {
        DatabaseManager db = new DatabaseManager();
        Connection var = db.getConnection();
        Statement stmt = var.createStatement();
        ResultSet resultado = stmt.executeQuery(sql);
        ArrayList todos = new ArrayList();
        while (resultado.next())
        {
            MailRecibido mailRecibido = new MailRecibido(Integer.parseInt(resultado.getString("ID_MAIL")),resultado.getString("REMITENTE"),resultado.getString("ASUNTO"),resultado.getString("CUERPO"),resultado.getString("FECHA"));
            todos.add(mailRecibido);
        }
        
        db.getConnection().close();
        return todos;
    }
    
    public ArrayList listarEnviados(String sql) throws SQLException 
        {
            DatabaseManager db = new DatabaseManager();
            Connection var = db.getConnection();
            Statement stmt = var.createStatement();
            ResultSet resultado = stmt.executeQuery(sql);
            ArrayList enviados = new ArrayList();
            while (resultado.next())
            {
                MailEnviado mailEnviado = new MailEnviado(Integer.parseInt(resultado.getString("ID_MAIL")),resultado.getString("DESTINATARIO"),resultado.getString("ASUNTO"),resultado.getString("CUERPO"),resultado.getString("FECHA"));
                enviados.add(mailEnviado);
            }

            db.getConnection().close();
            return enviados;
    
        }
    
    
    public ArrayList listarGuardados(String sql) throws SQLException 
        {
            DatabaseManager db = new DatabaseManager();
            Connection var = db.getConnection();
            Statement stmt = var.createStatement();
            ResultSet resultado = stmt.executeQuery(sql);
            ArrayList enviados = new ArrayList();
            while (resultado.next())
            {
                
                MailEnviado mailEnviado = new MailEnviado(Integer.parseInt(resultado.getString("ID_MAIL")),resultado.getString("DESTINATARIO"),resultado.getString("ASUNTO"),resultado.getString("CUERPO"),resultado.getString("FECHA"));
                enviados.add(mailEnviado);
            }

            db.getConnection().close();
            return enviados;
    
        }

    public boolean enviarBorrador(MailEnviado mail) throws SQLException {
            DatabaseManager db = new DatabaseManager();	
            Connection var= db.getConnection();
            Statement stmt = var.createStatement();
            boolean resultado= stmt.execute("DELETE FROM BORRADOR WHERE ID_BORRADOR="+mail.getId_mail()+"" );
            stmt.execute("DELETE FROM EMAIL WHERE ID_MAIL="+mail.getId_mail()+"" );
            stmt.execute("INSERT INTO EMAIL VALUES("+mail.getId_mail()+",'"+mail.getAsunto()+"','"+mail.getCuerpo()+"', '"+mail.getFecha()+"')" );
            stmt.execute("INSERT INTO ENVIADO VALUES("+mail.getId_mail()+",'"+mail.getDestinatario()+"')" );
            var.commit();
            db.getConnection().close();
            return resultado;
    }

    
        
        
}

